\documentstyle[titlepage]{article}

\newcommand{\ex}{{\bf Excalibur}}
\newcommand{\oz}{O\kern-.03em z\kern-.15em\TeX}
\newcommand{\AmS}{{\protect\the\textfont2
        A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
\newcommand{\textures}{{\em Textures\/}}
% Use the following definition if you have an older version of LaTeX
% that doesn't define \SLiTeX.  Better yet, get yourself a new version
% of LaTeX.
% \newcommand{\SLiTeX}{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06emT\kern
%    -.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\begin{document}

\title{Excalibur 1.4.1}
\author{Rob Gottshall \and Rick Zaccone}
\date{August 4, 1993}
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}
\maketitle

\section{Introduction}

\ex{} is a Macintosh spelling checker for \LaTeX{} documents. It also
does a fairly good job with plain \TeX{} files. It reads files of type
{\tt TEXT} and it is smart enough to ignore most \LaTeX{} commands and
a fair number of plain \TeX{} commands. Since it just ignores these
commands, it will also serve quite nicely as a spelling checker for
any {\tt TEXT} file that doesn't contain any \LaTeX{} or \TeX{}
commands. (It is not completely accurate to say that \ex{} ignores
\LaTeX{} commands. It will process any arguments that contain text.)
\ex{} will also spell check the clipboard, making it useful as a
spelling checker for text editors, mail programs, etc.

\ex{} is a stand-alone application that we have tested with both \oz{}
and \textures{} documents. The fact that it is a stand-alone application
should not present any inconvenience since it works with MultiFinder
under System~6 and it is System~7 friendly.

\section{Excalibur Philosophy}

One approach to \LaTeX{} spell checking is to put all the commands
into the dictionary. This yields limited success because it does not
specify what should be done with the arguments of the commands. For
example, the \verb+\label+ command has an argument that should always
be ignored. On the other hand, the \verb+\section+ command has an
argument that should always be spell checked. To complicate things
more, there are commands such as \verb+\addtocontents+ that have one
argument that should be ignored, and another that should be spell
checked.

\ex{} does {\em not\/} put \LaTeX{} commands into its dictionary.
Instead, it knows how to process each command intelligently. It knows
which arguments to ignore and which it should spell check. As a
result, \ex{} is a \LaTeX{} spelling checker that does a very good
job.

\section{Excalibur Features}

\begin{itemize}

  \item \ex{} recognizes \LaTeX, \AmS-\LaTeX, \SLiTeX, {\tt psfig}, and
        {\tt epic} commands. It also recognizes a fair number of plain
        \TeX{} commands.

  \item You can teach \ex{} about new commands and environments that
        you define.

  \item \ex{} knows about accented characters and ligatures. This
        should help non English speaking users. They can add words
        with accents and ligatures to their dictionaries.

  \item \ex{} knows about discretionary hyphens. You can add words
        with discretionary hyphens to the dictionary too.

  \item \ex{} will optionally ignore text in the \verb+\tt+ font. This
        is very useful for people (like us) who are in computer
        science and often sprinkle their documents with file names in
        the typewriter font.

  \item \ex{} ignores everything that appears in the following
        environments:
        \begin{itemize}
          \item {\tt math}, {\tt displaymath}, {\tt eqnarray},
                {\tt eqnarray*}, {\tt subeqnarray}, {\tt equation},
                {\tt verbatim}, {\tt verbatim*}, {\tt cprog}, and
                {\tt alltt}.
        \end{itemize}

        \ex{} ignores the following \AmS-\LaTeX{} environments:
        \begin{itemize}
          \item {\tt align}, {\tt align*}, {\tt alignat},
                {\tt alignat*}, {\tt comment}, {\tt equation*},
                {\tt gather}, {\tt gather*}, {\tt multline},
                {\tt multline*}, {\tt xalignat}, {\tt xalignat*},
                {\tt xxalignat}, and {\tt xxalignat*}.
        \end{itemize}

        It also ignores everything that appears within
        \begin{itemize}
          \item \verb+\[+$\ldots$\verb+\]+,
                \verb+\(+$\ldots$\verb+\)+,\verb+$+$\ldots$\verb+$+,
                \verb+$$+$\ldots$\verb+$$+ and
                \verb+\begintt+$\ldots$\verb+\endtt+.
        \end{itemize}

  \item \ex{} ignores the arguments of \verb+\verb+ and \verb+\verb*+
        commands.

  \item \ex{} is 32-bit clean and System~7 friendly.

  \item \ex{} will warn you if it thinks it found a \LaTeX{} syntax
        error in a file. This usually means that you have unmatched
        braces, unmatched \verb+\begin+$\ldots$\verb+\end+ pairs, or an
        unmatched math mode delimiter.

  \item \ex{} will spell check the contents of the clipboard.  You can
        copy text to the clipboard, have \ex{} check it, and then write
        the results back onto the clipboard.  With this feature you can
        use \ex{} as a spelling checker for programs such as Eudora.

\end{itemize}

\section{Program Components}
\subsection{The File Menu}

Most of the items in the {\bf File} menu are standard for a Macintosh
application. This menu contains items to open a file, close a file,
save the changes to a file, reverting a file, and quitting the
program.  If you have started to spell check a file and you suddenly
remember that you forgot to activate a dictionary, you can use
{\bf Revert} to put the spell checking operation in its initial
state.  Then, activate your dictionary and hit {\bf Start}.

The {\bf Open Clipboard} and {\bf Save To Clipboard} items will let
you spell check the clipboard and then save the results back to the
clipboard again.  This is useful if you want to spell check just a
small portion of a document.  You can copy the text to the
clipboard, check its spelling, save the result back to the
clipboard, and then paste the result back into your document.

\subsection{The Dictionary Menu}

The {\bf Dictionary} menu lets you create new dictionaries and add
words to existing dictionaries. It also lets you select the
dictionaries that you would like to use for spell checking.

\subsubsection{Create Dictionary}

\ex{} comes with a Standard Dictionary of about 47,000 English words.
If you would like to create your own dictionary so you can add words
that aren't in the Standard Dictionary, use the {\bf Create
Dictionary} item in the {\bf Dictionary} menu. You can save the
dictionary any place you like, but \ex{} looks first in its own folder
for dictionaries. If it doesn't find any dictionaries there, you will
have to tell it where to find them. It's probably easiest to save your
dictionaries in the \ex{} folder.

\subsubsection{Save Dictionaries}

The {\bf Save Dictionaries} menu item will save any dictionaries that
have changed since you started \ex. If you forget to invoke the {\bf
Save Dictionaries} command, \ex{} will warn you when you try to quit.

\subsubsection{Add Word$\ldots$}

You can use this to add a word to a dictionary when you are not spell
checking a document. You must have a user defined {\em active
dictionary\/} for this item to be enabled. See
section~\ref{sec:act-dict} (page~\pageref{sec:act-dict}) for more
information on active dictionaries.

\subsubsection{Conversions}

Using the {\bf Conversions} menu you can convert a dictionary to a
text file so you can edit it. This is useful if you want to remove or
add words. You can also convert a text file to a dictionary. The words
do not have to be sorted.

When you convert a dictionary to a text file, \ex{} gives you the
option of setting the file creator for the resulting text file.  You
can choose MS~Word, Alpha, or a generic text file.

When you convert a text file to a dictionary, \ex{} gives you the
option of saving the file as {\em read only}.  If you choose this
option, you will not be able to add words to the dictionary from
within \ex.  It's a good idea to keep the Standard Dictionary read
only.

\ex{} will recognize accents and ligatures if the {\bf Do \LaTeX{}
Command Parsing} option is checked.  If you don't have any accents
or ligatures, you can uncheck this option and the conversion will be
a little faster.

If you want to add a few words to a larger dictionary, first convert
the larger dictionary to a text file.  Then, copy the words you want
to add onto the end of the file.  Finally, convert the file back
into a dictionary.  We expect that this will be the most common use
of conversions, so we have tuned the text to dictionary conversion
so that it performs best under these circumstances.  If you have a
completely unsorted list of words that you would like to convert to
a dictionary, the conversion may be lengthy.  Sorting the words
first will speed things up greatly.   Convert your word list to lower
case before doing the sort.

If you are converting a large file such as \ex's Standard Dictionary,
you will have to increase \ex's memory partition.
Section~\ref{sec:large-docs} (page~\pageref{sec:large-docs}) explains
how to do this.

\subsubsection{The Dictionary List}

The bottom portion of the Dictionary menu contains a list of your
dictionaries. \ex{} uses the checked dictionaries in its spell
checking operation. You can check and uncheck dictionaries before you
begin the spell check operation. Once you have begun, you can't change
them. You {\em can\/} change dictionaries {\em between\/} spell
checking operations.

\subsection{Definitions Menu}
\label{sec:definitions}

You can teach \ex{} about new \LaTeX{} commands and environments that
you have defined with the {\bf Definitions} menu.

If you define a new command with either \verb+\newcommand+ or
\verb+\renewcommand+, you can tell \ex{} about it by selecting
{\bf Edit Commands$\ldots$}.  Enter the name of your command in the
text box, select the number of arguments with the pop-up menu, and hit
the {\bf Add} button.  You can add any number of commands to the list.
Each command in the list is followed by the number of arguments that
\ex{} should ignore.  Thus, if you define a command that has three
arguments and you would like \ex{} to spell check the third argument,
tell \ex{} to ignore two arguments.

You can tell \ex{} about new environments in a similar fashion.  Use
the {\bf Edit Environments$\ldots$} menu item.  It performs exactly
the same as the {\bf Edit Commands$\ldots$} item.

Use the {\bf Save Definitions$\ldots$} command to save the commands
and environments that you have defined to a file.  You can read a
file that contains command and environment definitions with the
{\bf Read Definitions$\ldots$} command.

The {\bf Clear Definitions} command will cause \ex{} to forget about
the currently defined definitions.

\ex{} checks the list of user defined commands and environments
before checking to see if a command or environment is part of
standard \LaTeX.  Thus, if you change the definition of a
standard \LaTeX command with \verb+\renewcommand+, \ex{} will not
get confused.

\subsection{Active Dictionaries}
\label{sec:act-dict}

Throughout this manual, we will refer to any dictionary that is
checked in the {\bf Dictionary} menu as an {\em active dictionary}.
You can add or remove a check mark by selecting that menu item. \ex{}
uses the active dictionaries when spell checking.

{\bf Note:} In order for the {\bf Add$\ldots$} button to be operational,
you must have at least one user defined dictionary that is active. You
may not alter the Standard Dictionary.

\subsection{The Document Window}

The top portion of \ex's display is the document window. \ex{} will
show you the context for your misspelled words here.

\subsection{The Control Dialog}

Most of your interaction with \ex{} will be through the control
dialog. It contains buttons for starting the spell check operation and
for making corrections to words. You must open a document using {\bf
Open$\ldots$} in the {\bf File} menu for the control dialog to
appear.

\section{Program Operation}
\subsection{Getting Started}

To begin spell checking, hit the {\bf Start} button.

\ex{} will display incorrect words in the {\bf Unknown Word} field.
This means that it wasn't able to find the word in any active
dictionary. See the {\bf Active Dictionaries} section for more
information on active dictionaries.

\subsection{How To Make a Spelling Correction}

You enter spelling corrections through the {\bf Change To:} box. You
can get text into this box in several ways.

\begin{enumerate}
  \item Simply enter the correct word.

  \item Hit the {\bf Change} button. This will copy the incorrect word
        to the {\bf Change To:} box. You can then edit the word.

  \item Ask \ex{} to suggest a correction by hitting the {\bf Suggest}
        button. If you see the correct spelling in the list of words
        that \ex{} presents, double click on it. This will copy the
        correct word into the {\bf Change To:} box.
\end{enumerate}

To complete the change operation, hit the {\bf Change} button.

Helpful hint:  If the {\bf Change To:} box is empty, then
\ex{} uses the flagged word to create its suggestion list. If the {\bf
Change To:} box has text in it, \ex{} uses that text as a basis for
its suggestion list. So, if \ex{} doesn't give you a suggestion that
you like, hit the {\bf Change} button to copy the flagged word into
the {\bf Change To:} box. Then change its spelling slightly and hit
{\bf Suggest} again.

\subsection{Ignoring a Word}

If you would like to ignore what \ex{} thinks is a misspelled word,
hit the {\bf Ignore} button. \ex{} will ignore any subsequent
occurrence of this word also. You can change this behavior in the {\bf
Options} menu.

\subsection{Adding Words to a Dictionary}

\ex{} flags any word that is not in an active dictionary. To add the
flagged word to an active dictionary, hit the {\bf Add$\ldots$} button.
You can add the word to any active dictionary other than the Standard
Dictionary.

Use the checkbox to always select the same dictionary for the word you
are spell checking. When you do this, \ex{} will stop presenting the
{\bf Add} dialog every time you add a word. If you have checked this
box, you can force \ex{} to bring up the dialog by holding the shift
key down while you click on {\bf Add}. This allows you to deselect the
checkbox or select a new set of dictionaries to automatically select
from then on.

After adding a word to a dictionary, you will still have to take an
action on the current word. It will often be the case that you would
like to simply ignore the word now that you have entered it into a
dictionary. You can use the {\bf Options} menu to make this the
default action.

{\bf Note:} In order for the {\bf Add$\ldots$} button to be operational,
you must have at least one modifiable dictionary that is active. A
dictionary is active if it is checked.

\subsection{Quitting Excalibur}

To quit \ex, select {\bf Quit} from the {\bf File} menu. If you forgot
to save your corrections, \ex{} will warn you. \ex{} will also warn
you if you forgot to save any changes to your dictionaries or if you
have not saved any changes to your definitions.

\subsection{Spell Checking Options}

{\bf Ignore All CAPS} instructs \ex{} to ignore words that consist
entirely of upper-case letters.

If you hit the {\bf Ignore} button and the {\bf Ignore Throughout}
option is checked, \ex{} will ignore any subsequent occurrences of the
word.

If you change a word and the {\bf Replace Throughout} option is
checked, \ex{} will replace all subsequent occurrences of the word
also.  Note that you have to finish spell checking the document for
this to happen.  If you stop spell checking a document before
reaching the end, \ex{} may not replace all occurrences of the word
even though you have checked this option.

If you select the {\bf Auto Suggest} option, \ex{} will automatically
make suggestions when it shows you a misspelled word.

If {\bf Do \LaTeX{} Command Parsing} is checked, \ex{} assumes that
the file you are processing contains \TeX/\LaTeX{} commands.

{\bf Ignore \verb+\tt+ Text} instructs \ex{} to not spell check words
that are in the typewriter font.

{\bf Warn on parsing errors} causes \ex{} to warn you if it thinks it
found a \LaTeX{} syntax error.

\subsection{Dialog Behavior Options}

If you attempt to replace a misspelled word with a word that is not in
any active dictionary, you may have \ex{} take one of three actions.

\begin{enumerate}
  \item Quietly let you replace the word.

  \item Beep, then let you replace the word.

  \item Put up a dialog that warns you that the word is not in any
        active dictionary, then let you replace the word. This is the
        default.
\end{enumerate}

These last two actions are useful because they give you the
opportunity to enter the replacement word into a dictionary before
continuing.

\subsubsection{Press Ignore button automatically if user adds flagged
word to a dictionary}

If you have just added a word to the dictionary, you will often want
to press {\bf Ignore} to indicate that you are finished with the word.
This option causes this to happen automatically. You will immediately
advance to the next misspelled word when this option is checked. If
you find that you often want to enter several words at once to the
dictionary (for example, the same word with several different
endings), then you may wish to uncheck this option.

\subsubsection{Press Change button automatically if user adds
replacement word to a dictionary}

If you have just added a replacement word to the dictionary, you will
often want to press {\bf Change} to make the change and advance you to
the next word. This option causes this to happen automatically. If you
find that you often want to enter several words at once to the
dictionary (for example, the same word with several different
endings), then you may wish to uncheck this option.

\subsubsection{Save Dictionaries without prompting}

If you have made changes to user defined dictionaries and you quit
\ex, it will automatically save your dictionaries for you if this
option is set. If this option is not set, \ex{} will warn you before
quitting.

\subsection{Word Boundary Options}

The {\bf A} {\tt "} {\bf is the same as} \verb+\"+ option tells \ex{}
that you are using {\tt "} when typing an umlaut.  For example, this
tells \ex{} that \verb+"u+ is the same as \verb+\"u+.  This option is
not available if you do not have \LaTeX{} command parsing turned on.

The {\bf Single quote marks end of word} option tells \ex{} that a
single quote will never be part of a word. This is probably not useful
for English speaking users since this causes \ex{} to no longer
recognize contractions. It may be useful in French though. If the word
``application'' is in the dictionary, then \ex{} won't flag
``l'application.'' Even if this option is checked, \ex{} will still
recognize the \verb+\'+ accent.

The {\bf Regard 's as end of word} option tells \ex{} to stop parsing
a word when it reaches 's.  Thus, if the word ``Knuth'' is in your
dictionary, \ex{} won't flag ``Knuth's''.  This option is probably
most useful to English speaking users.  This option is not available
if {\bf Single quote marks end of word} is checked.

\subsection{Saving Preferences}

You can save your current preferences by selecting {\bf
Preferences$\ldots$} in the {\bf Options} menu. You can ask \ex{} to
remember the dictionaries and definitions that you are currently
using. You can also ask it to remember your spell-checking, dialog
behavior, and word boundary options.

\section{Known Problems}
\label{sec:problems}

When you correct a word, \ex{} does not update the screen to reflect
the correction. However, the change {\em does\/} take place.

If you have a large number of words in your dictionary that begin with
accented characters, \ex{} will slow down.

\ex{} has a limit of about 64K for the size of words that may begin
with accented characters. The easiest way to get around this problem
is to split your dictionary into pieces that do not exceed this
limit.

\section{Large Documents}
\label{sec:large-docs}

The size of a document is limited only by the amount of memory on your
machine. Here is what to do if \ex{} complains about not having enough
memory to open a document or to perform a dictionary conversion. Quit
\ex{} and highlight its icon on the desktop. Select {\bf Get Info}
from the {\bf File} menu. Make the {\bf current size} of \ex{} larger.

\section{Getting the Most From Excalibur}
\label{sec:themost}

We have tested \ex{} on a large number of files, and it works quite
well. However, here are some things to consider if \ex{} does not seem
to be doing its job.

If there is a \TeX{} and \LaTeX{} way of doing things, \ex{} usually
handles the \LaTeX{} method better. For example, use
\verb+\input{file}+ instead of \verb+\input file+.

\begin{itemize}
  \item Use the \verb+\symbol{}+ command instead of \verb+\char+. For
        example, you should use \verb+\symbol{'134}+ instead of
        \verb+\char'134+ to produce a backslash.

  \item Use the \verb+\setlength{}{}+ command change the length of
        something. For example, you should use
        \verb+\setlength{\textwidth}{6.5in}+ instead of
        \verb+\textwidth=6.5in+.

  \item Use \verb+\newcommand+ or \verb+\renewcommand+ instead of
        \verb+\def+ to define a command.

  \item Be careful when using \verb+\renewcommand+. \ex{} doesn't look
        at the new definition of a command. If you define it to have a
        different number of arguments than the original command, \ex{}
        will get confused.  Tell \ex{} about the new form of the
        command by using the {\bf Definitions} menu.  See
        section~\ref{sec:definitions} on page~\pageref{sec:definitions}.

  \item \ex{} knows a fair amount about \TeX/\LaTeX{} syntax. If it
        looks like it's skipping large portions of a file, it's
        probably because of an unmatched brace or some other syntax
        error. It's best to run it on a syntactically correct file. It
        will warn you if it thinks it found a syntax error.

  \item The commands \verb+\=+, \verb+\'+, and \verb+\`+ usually
        produce accents. However, they are redefined in a tabbing
        environment. To make sure that \ex{} interprets them properly
        in a tabbing environment, precede (unless at the beginning of
        a line) and follow them by a space. \ex{} knows about the
        special \verb+\a+ accent in the tabbing environment.

  \item For any environment that \ex{} ignores, there should be no
        spaces between the \verb+\end+ and the left curly brace. For
        example, \verb+\end {verbatim}+ will confuse \ex.

  \item If you use \verb+\equation+ $\ldots$ \verb+\endequation+ to
        delimit the bounds of an equation, \ex{} won't ignore it. You
        should use \verb+\begin{equation}+ $\ldots$
        \verb+\end{equation}+ instead.

  \item \LaTeX{} will accept the command
        \verb+\newcommand\gn{$\Gamma_i$}+ despite the fact that the
        manual says to use \verb+\newcommand{\gn}{$\Gamma_i$}+. That
        is, \LaTeX{} doesn't insist on the first set of braces. \ex{}
        expects to see both sets of braces. It will get confused if
        they are not present. We tried to follow the manual as much as
        possible.

  \item A word may not begin with a left curly brace, but it may
        contain embedded curly braces. For example, \ex{} will
        recognize the word ``na\"\i ve'' when it is written as
        \verb+na\"{\i}ve+, \verb+na\"\i{}ve+, or \verb+na\"\i ve+ but
        not \verb+{na\"\i}ve+, even though this last form is
        syntactically correct. Of course you will need to put these in
        your dictionary if you would like \ex{} not to flag them as
        spelling errors. Note that a space may be part of a word.

  \item We tried to make \ex{} intelligent when it suggests words with
        accents. If you are using Apple's extended character set, it
        doesn't have any problems. If you are using control sequences to
        produce accents, this presents a challenge to \ex. As we have
        indicated, there are often many different ways to type a word such
        as ``na\"{\i}ve''. \ex{} can't check all the possibilities when
        looking for a word in the dictionary. Consequently, it makes some
        assumptions about how you type accents. It expects that you will
        type \'a as \verb+\'a+, \'{\i} as \verb+\'{\i}+, and \c{c} as
        \verb+\c{c}+. In general, it assumes that you will use curly braces
        only if the accented character would introduce a space when used in
        the middle of a word.

  \item \ex{} has a new color icon. If you have been using
        version 1.0 of \ex, rebuild the desktop after copying
        this new version onto your machine. (Restart the computer and
        hold down the command and option keys.)
\end{itemize}

\section{Excalibur Genealogy}

\ex{} has its roots in a software engineering course at Bucknell
University in the spring semester of 1990. Rob Gottshall and Rick
Zaccone produced the current version using the original application as
a base.

\subsection{Version 1.4.1, August 4, 1993}

\begin{itemize}

  \item Repaired several minor bugs including better error handling
        under low memory conditions.

  \item You can now convert larger text files into dictionaries.  If
        you create a really large dictionary you may not be able to
        read it with an older version of \ex{}.

  \item \ex{} knows about the conventions in {\tt german.sty}.  If
        you turn on the option to treat {\tt "} as if it were
        \verb+\"+, \ex{} will also know about the hyphens and quotes
        defined in {\tt german.sty}.

\end{itemize}

\subsection{Version 1.4, July 11, 1993}

\begin{itemize}

  \item You may now spell check the contents of the clipboard.  You
        may save the results back to the clipboard too.

  \item You may now teach \ex{} about new commands and environments
        that you have defined.

  \item Fixed some update problems that occurred when balloon help
        was on.

  \item Fixed a problem with the {\bf Save As$\ldots$} command.

  \item Fixed a problem that caused a flagged word to not appear on
        the screen.  This occurred very rarely.

  \item \ex{} now handles the \verb+\cite+ command properly.

  \item Fixed an obscure bug in the {\bf Add Words$\ldots$} dialog.

  \item Added an option that tells \ex{} to treat {\tt "} as if it
        were \verb+\"+.  If you type \"u as \verb+"u+ instead of
        \verb+\"u+, \ex{} will be happy.  Many German speaking users
        requested this change.

  \item There is an option that will cause \ex{} to always have a
        single quote mark the end of a word.  This is not good for
        English speaking users since \ex{} will not recognize
        contractions when this is on.  However, many French speaking
        users requested this.

  \item When the {\bf Use selection from now on} box is checked in
        the {\bf Add$\ldots$} dialog, the ellipses no longer appear in
        the {\bf Add} button.  This gives you a visual indication that
        this box is checked.

  \item If you have an older version of Excalibur, you will need to
        rebuild your desktop in order to see the new icon for definition
        files.
\end{itemize}

\subsection{Version 1.3.3, May 1, 1993}

\begin{itemize}

  \item Version 1.3.3 has a better algorithm for suggesting words
        with accents. Section~\ref{sec:themost} explains some problems
        we had implementing this.

  \item Added processing for \verb+\epsfbox+ command.

  \item Most text that appears in dialog boxes is now in string
        resources. This should make it easier to localize \ex.

  \item Some \ex{} users have been kind enough to contribute
        additional dictionaries. There are British, French, and
        Italian dictionaries in the directory {\tt
        pub/mac/other-dictionaries} on {\tt sol.cs.bucknell.edu}. We
        will gladly accept any other non-copyrighted dictionaries that
        users are willing to contribute.

  \item We also eliminated the help facility in this version. The
        balloon help makes it unnecessary.

\end{itemize}

\subsection{Version 1.3.2, April 10, 1993}

\begin{itemize}
    \item  \ex{} now has balloon help.

    \item  You may now optionally ignore {\tt 's} at the end of words.

    \item  There is an option to automatically suggest a correction to a
           misspelled word.

    \item  The error correction phase of \ex{} is now faster. Under
           certain rare circumstances, the error correction phase
           would slow down. This no longer happens.

    \item  In preparation for some future additions to \ex{}, we have
           rewritten much of the display code. A few things look
           different, but there are a lot of changes under the hood.

    \item Fixed some problems with the Standard Dictionary.

    \item  Numerous minor fixes and adjustments.
\end{itemize}

\subsection{Version 1.3.1, February 7, 1993}

This version corrects a bug in the \LaTeX{} parsing, and it correct
several minor display problems.

\subsection{Version 1.3, January 10, 1993}

\begin{itemize}
  \item \ex{} handles disk insert events. If you insert an
        uninitialized disk while \ex{} is running, it will ask you if
        you want to initialize it.

  \item \ex{} now recognizes the \verb+\lefteqn+ command.

  \item \ex{} positions alerts and dialogs according to the Human
        Interface Guidelines.

  \item \ex{} saves both the resource and data forks of a file.
        Previously, it didn't save the resource fork under System~7.

  \item \ex{} looks at the ``Do LaTeX Parsing'' option when doing
        text to dictionary conversions. If this option is checked,
        \ex{} will recognize \TeX{} accents and ligatures in words.

  \item Text to Dictionary conversions are faster. They also require
        somewhat more memory.

  \item \ex{} correctly updates the document window.

  \item Drag and Drop should work better.

  \item Numerous bug fixes.
\end{itemize}

\subsection{Version 1.2}

We produced version 1.2 in September 1992.  Here are the features and
bug fixes we added.

\begin{itemize}

  \item Fixed problem with recognizing the {\tt tabular*} environment.

  \item \ex{} is now System~7 friendly. It handles the required Apple
        events. (It handles the Print event, although it doesn't do
        anything.) As a result, it handles drag and drop operations
        properly. You may drag just one file at a time.

  \item \ex{} now uses a ``safe save'' technique for saving files if
        you are running System~7. That is, it saves the file into a
        temporary file. Once the save has successfully completed,
        \ex{} moves the file onto the original.  This may make a
        difference if you are saving onto a floppy disk.  Make sure there
        is enough room for two copies of the file.

  \item \ex{} now requires System 6.0.4 or higher.

  \item \ex{} recognizes the Apple extended character set.

  \item Fixed a display bug in the ``About the Authors'' dialog.

  \item \ex{} now recognizes \AmS-\LaTeX{} environments. In particular,
        it now knows about the environments {\tt align}, {\tt align*},
        {\tt alignat}, {\tt alignat*}, {\tt comment}, {\tt equation*},
        {\tt gather}, {\tt gather*}, {\tt multline}, {\tt multline*},
        {\tt xalignat}, {\tt xalignat*}, {\tt xxalignat}, and {\tt
        xxalignat*}.

  \item It knows the \AmS-\LaTeX{} commands {\tt accentedsymbol},
        {\tt addtoversion}, {\tt email}, {\tt eqref}, {\tt family},
        {\tt newmathalphabet}, {\tt numberwithin}, {\tt operatorname},
        {\tt operatornamewithlimits}, {\tt series}, {\tt shape}, and
        {\tt theoremstyle}.

  \item If \ex{} gets an error while trying to save a file, it tries
        to print a meaningful error message. If it gets an error for
        which it doesn't have a message, it prints the error number.

  \item Added Preferences File that saves spell-checking and dialog
        options as well as the names of active dictionaries.

  \item Changed Help dialog button from OK to Done.

  \item Added Text to Dictionary and Dictionary to text file
        conversions. Text files can be saved as MS Word, Alpha, or
        generic text files.  Alpha contains some nice support for
        \LaTeX.  It's well worth the shareware fee.
\end{itemize}

\subsection{Version 1.1}

Version 1.1 was produced in February 1992. We have rewritten
substantial portions of version 1.0.

Some new features include:

\begin{itemize}
  \item User defined dictionaries now work.

  \item Many improvements to the user interface.

  \item \LaTeX/\TeX{} command recognizer completely rewritten.
        \LaTeX{} command recognition is now excellent. Plain \TeX{}
        command recognition is good. The syntax of plain \TeX{} is
        difficult to parse. We are not sure how much the plain \TeX{}
        recognition will improve in the future, but please send us
        information about any problems you have.

  \item \ex{} knows about accented characters and ligatures.

  \item \ex{} will optionally ignore text in the \verb+\tt+ font.

  \item \ex{} will now warn you if it thinks it found a \LaTeX{}
        syntax error in a file.

  \item \ex{} is considerably faster than version 1.0.
\end{itemize}

\subsection{Version 1.0}

Version 1.0 was produced in May 1990.

\section{Plans for the Future}

We would like to have \ex{} recognize the commands in Apple's Word
Services suite. This will allow you to highlight a section of text in
your word processor and then have it ship the text to \ex{} for spell
checking.

We will fix any bugs that people find. Please use the information in
section~\ref{sec:bugs} to send us bug reports.

We welcome suggestions on how to improve \ex.

\section{Suggestions and Bug Reports}
\label{sec:bugs}

We are very interested in maintaining and improving this program.
If you have a bug report and your bug is not easy to reproduce,
try to send us a small file that readily reproduces the problem.
Be sure to mention which version of \ex{} you are using.

Send comments, suggestions, and bug reports to:

\begin{flushleft}
Rick Zaccone \\
Computer Science Department \\
Bucknell University \\
Lewisburg, PA 17837 \\
U.S.A \\[4pt]

Phone: 717-524-1393 \\[4pt]

Electronic mail: \verb+zaccone@bucknell.edu+ \\
\end{flushleft}

You may {\tt ftp} the latest version of \ex{} from {\tt
sol.cs.bucknell.edu} (134.82.1.8) in the directory {\tt pub/mac}. You
will also find dictionaries for British, Dutch, French, German, and
Italian in the subdirectory {\tt other-dictionaries}.

\section{Acknowledgments}

We produced \ex{} using Think~C.

We wish to acknowledge the efforts of Matt Biar for Version 1.0
\LaTeX{} parsing and significant contributions to the design of \ex.
We also thank Mohamad Daimon for great user interface ideas,
knick-knacks, and hours of tedious testing.

We also acknowledge the rest of the original \ex{} team: Nancy Dodge
(documentation), Dan Jamieson , John Meehan, James Mitchell, Frank
Lijoi, and Joe Lijoi.

\section{Excalibur Legend}

Excalibur is King Arthur's great sword. It sometimes gives off
light and occasionally is wielded by Gawain. Excalibur is given
to Arthur, and finally taken from him, by a hand in the lake.
Merlin, who brings Arthur to the Lady of the Lake to receive
Excalibur, informs the King that the scabbard is worth far more
than the sword itself, for the former will protect its bearer
from injury. Despite this fact, it is the sword rather than its
scabbard that has captured the imagination of later writers and
readers.

\section{Legal Fine Print}

\ex{} is free. However it is not public domain and we retain the
copyright. You may not charge to redistribute this program except for
normal download fees.  You may not distribute \ex{} with a commercial
package without written permission from the authors.

\textures{} is commercial version of \TeX{} for the Macintosh produced by
Blue Sky Research.

\oz{} is a shareware version of \TeX{} for the Macintosh produced by
Andrew Trevorrow.

\end{document}
